package com.example.web.service;

import com.example.web.entity.Role;

import java.util.List;

/**
 * 角色服务接口
 */
public interface RoleService {
    
    /**
     * 查询所有角色
     * @return 角色列表
     */
    List<Role> getAllRoles();
    
    /**
     * 根据ID查询角色
     * @param id 角色ID
     * @return 角色信息
     */
    Role getRoleById(Long id);
    
    /**
     * 根据角色编码查询角色
     * @param roleCode 角色编码
     * @return 角色信息
     */
    Role getRoleByCode(String roleCode);
    
    /**
     * 根据用户ID查询角色列表
     * @param userId 用户ID
     * @return 角色列表
     */
    List<Role> getRolesByUserId(Long userId);
    
    /**
     * 新增角色
     * @param role 角色信息
     * @return 结果
     */
    int addRole(Role role);
    
    /**
     * 修改角色
     * @param role 角色信息
     * @return 结果
     */
    int updateRole(Role role);
    
    /**
     * 删除角色
     * @param id 角色ID
     * @return 结果
     */
    int deleteRoleById(Long id);
    
    /**
     * 批量删除角色
     * @param ids 需要删除的角色ID数组
     * @return 结果
     */
    int deleteRoleByIds(Long[] ids);
    
    /**
     * 分配菜单权限
     * @param roleId 角色ID
     * @param menuIds 菜单ID数组
     * @return 结果
     */
    int assignMenus(Long roleId, Long[] menuIds);
}